#ifndef MATRIX_DOUBLE_PARAM_H
#define MATRIX_DOUBLE_PARAM_H

#include "ArrayDoubleParam.h"

class MatrixDoubleParam: public Param {
protected:
	ArrayDoubleParam *values;
	int size;
	char label;

	ArrayDoubleParam &get( int i ) throw (InvalidIndex, NotReady);

public:
	MatrixDoubleParam();
	MatrixDoubleParam( int row, char rowLabel, const char *name );
	MatrixDoubleParam( int row, int col, char rowLabel, char colLabel, const char *name );
	MatrixDoubleParam( MatrixDoubleParam &src );
	~MatrixDoubleParam();

	void read( Input &input ) throw (NotReady);

	ArrayDoubleParam &operator [] ( int i ) throw (InvalidIndex, NotReady);

	void setSize( int size ) throw (NotReady);
	void setLabel( char label ) throw (NotReady);
	int getSize() throw (NotReady);
	char getLabel() throw (NotReady);
};

#endif